JPEG (pronounced “jay-peg”) is a standardized image compression mechanism for still images. JPEG, which stands for “Joint Photographic Experts Group” (the original name of the committee that wrote the standard), is designed for compressing either full-color or gray-scale images of natural, real-world scenes. JPEG typically works well on photographs, naturalistic artwork, and similar material, but is not as effective on lettering, simple cartoons, or line drawings.
JPEG 2000 is an improved standardized image compression mechanism derived from the JPEG algorithm, which provides higher performance and improved functionality over conventional JPEG. As a result of the increasing complexity of digital imagery, JPEG 2000 was developed to better manipulate ever-increasing amounts of data, reducing the necessary storage and bandwidth requirements for associated hardware, and allowing extraction for editing, processing, and targeting of particular devices and applications. In addition to the rate-distortion advantage over conventional JPEG, JPEG 2000 allows for the extraction of different resolutions, pixel fidelities, regions of interest, components, and more, all from a single compressed bitstream.
The conventional JPEG and JPEG 2000 image compression mechanisms are “lossy,” which means that a decompressed image is not exactly the same as the image which was originally compressed, although JPEG and JPEG 2000 are designed to exploit known limitations of the human perception. Lossy compression mechanisms are able to achieve a much greater compression ratio than conventional lossless methods. Since conventional lossy image compression mechanisms are intended for compressing images that will be looked at by humans, they typically rely on the fact that small color changes are perceived less accurately than small changes in brightness. As such, the small errors introduced by conventional JPEG and JPEG 2000 may create problems for images intended to be machine-analyzed.
One useful property of both conventional JPEG and JPEG 2000 is that the compression parameters can be adjusted to vary the degree of lossy-ness. In this regard, an image-maker can trade off file size against output image quality, making extremely small files with poor quality, for indexing image archives. Conversely, an image maker can increase the output image quality, albeit with lesser data compression.
The conventional JPEG compression algorithm may be implemented in both software and hardware. For example, C-Cubed Corporation introduced the first JPEG chip for compressing digital video images, which provides the requisite speed for real-time compression. JPEG++, an algorithm described in U.S. Pat. No. 5,014,198, developed by Storm Technology, is an extension to JPEG. JPEG++allows selected picture areas to be compressed at different ratios depending on the significance of the visual impact to the area in the image.
Conventional JPEG compression uses an encoding technique called discrete cosine transformation (“DCT”). DCT is a technique for representing waveform data as a weighted sum of cosines, resulting in lossy compression. DCT itself does not lose data; rather the data compression technologies that rely on DCT approximate some of the coefficients to reduce the amount of data.
Unlike JPEG, conventional JPEG 2000 compression uses an encoding technique known as a discrete wavelet transformation (“DWT”). The DWT is designed to decorrelate an image, decomposing an image tile into several subbands, and transforming an image data signal into two or more decimated signals corresponding to different frequency bands. The subbands consist of coefficients that describe the horizontal and vertical spatial frequency characteristics of the original tile component. The DWT generally results in the signal energy being concentrated in a small number of subbands, and the subbands subsequently tend to compress more easily than the original image.
One problem with the traditional JPEG and JPEG 2000 algorithms is that they employ a fixed color space transformation prior to encoding with the DCT or DWT, respectively, a limitation which developed in the respective standards due to historical reasons relating to the cost of computation. This fixed color space transformation is employed to transform an image from an red-green-blue color space (“RGB color space”) or a cyan-magenta-yellow color space (“CMY color space”) or a cyan-magenta-yellow-black color space (“CMYK color space”) into a luminance/chrominance color space (the “YUV color space,” also known as the “YCC” or “YCrCb” color spaces), where luminance is the first component (“Y”) and chrominance the second component (“U” or “Cb” chroma channel, or U-axis) and third component (“V” or “Cr” chroma channel, or V-axis).
To perform the transform a fixed predetermined matrix is employed to convert the image from a RGB color space, for example, into a luminance/chrominance color space represented in an unsigned byte form, such that each value is between 0 and 255. The rationale for using the luminance/chrominance color space is that some chrominance information can be lost in an image, since the human eye is less likely to perceive the changes in the chrominance or color component of a reconstructed image. As a result, the chrominance components are sub-sampled or reduced, while the luminance component is left at full resolution. This fixed color space transformation is not optimal, and leads to an inefficient use of channel-based compression techniques such as conventional JPEG or JPEG 2000.
In particular, the use of a predetermined matrix to execute the transformation does not ensure the most information is presented in the first component because it does not consider the wide variety of possible scene content in each compressed image. Since the transformation does not actively control or attempt to provide the most information about an individual image in the first component, all images are treated equally despite the errors that may occur when reconstructing a compressed image, affecting image perception. Accordingly, images or applications that have a lower tolerance for loss are compressed at lower ratios since more information in the second and third components is required. This results in larger files, and thus less file storage space. In addition, larger files require significantly more time to transmit from a host to a remote site than smaller files. As a result, a method is needed that provides optimal image compression to improve file storage capacity and transmission time, while reducing image quality degradation for a single image.
It is therefore considered highly desirable to provide an improved mechanism for compressing images which utilizes a DWT. In particular, it is desirable to provide an image compression mechanism which improves upon the fixed color space transformation used by conventional JPEG 2000, in order to generate smaller compressed image files.